package com.tarena.lbs.basic.dao.repository;

import com.github.pagehelper.PageInfo;
import com.tarena.lbs.base.protocol.exception.BusinessException;
import com.tarena.lbs.base.protocol.pager.PageResult;
import com.tarena.lbs.basic.pojo.po.TagLibraryPO;
import com.tarena.lbs.basic.pojo.query.TagQuery;
import com.tarena.lbs.basic.pojo.vo.TagLibraryVO;

import java.util.List;

public interface TagRepository {
    List<TagLibraryPO> getTagsBytType(Integer tagType);

    TagLibraryPO getTagById(Integer id);

    PageInfo<TagLibraryPO> getAllTags(TagQuery query);

    int addTag(TagLibraryPO tagLibraryPO);

    int updateTag(TagLibraryPO tagLibraryPO);

    List<TagLibraryPO> getTagsByParentId(Integer id);

    void delete(Integer id) throws BusinessException;

    int deleteTag(Integer id);

    PageResult<TagLibraryVO> getTagById(TagQuery query);

    /**
     * 根据标签名称和类型查询标签
     */
    TagLibraryPO getTagByNameAndType(String tagName, Integer tagType);

}
